#ifndef _FLYINGSTATE_H_
#define _FLYINGSTATE_H_

#include "State.h"
#include <Timer.h>

class FlyingState : public State
{
public:
	FlyingState();
	~FlyingState();

	virtual VOID			Init();
	virtual VOID			OnEnter( LPARAM param1, LPARAM param2, LPARAM param3 );
	virtual VOID			OnExit();
	virtual VOID			OnUpdate( DWORD dwDeltaTick );

protected:
	virtual VOID			OnMsgForceAttack( AI_MSG *pMsg ) {}
	virtual VOID			OnMsgFlying( AI_MSG *pMsg );
	virtual VOID			OnMsgThrust( AI_MSG *pMsg );
	virtual VOID			OnMsgKnockDown( AI_MSG *pMsg );
	virtual VOID			OnMsgStun( AI_MSG *pMsg );
	virtual VOID			OnMsgLetsGo( AI_MSG *pMsg );
	virtual VOID			OnMsgEnemyFound( AI_MSG *pMsg );
	virtual VOID			OnMsgCommandFollow( AI_MSG *pMsg );
	virtual VOID			OnMsgUseSkill( AI_MSG *pMsg ) {}

private:
	util::Timer				*m_pFlyingTimer;
	BOOL					m_bKnockDown;
};

#endif // _THRUSTSTATE_H_